#ifndef ANALEX_H_INCLUDED
#define ANALEX_H_INCLUDED

#define BUFFER_SIZE 200
#define STD_LEXEME_LEN 100
#define SENTINEL '\0'

#define CLASS 10
#define ID 11
#define EXTENDS 12
#define PUBLIC 13
#define STATIC 14
#define VOID 15
#define INT 16
#define FLOAT 17
#define BOOLEAN 18
#define IF 19
#define ELSE 20
#define WHILE 21
#define SYSTEM 22
#define OUT 23
#define PRINTLN 24
#define IN 25
#define READ 26
#define RETURN 27
#define NEW 28
#define SEMICOLON 29
#define LITERAL 30
#define DOT 31
#define LENGTH 32
#define TRUE 33
#define FALSE 34
#define THIS 35
#define JNULL 36
#define LPARENT 37
#define RPARENT 38
#define LBRACKET 39
#define RBRACKET 40
#define LBRACE 41
#define RBRACE 42
#define NOT 43
#define ASSIGN 44
#define EQUAL 45
#define LESST 46
#define LESSEQ 47
#define GREATERT 48
#define GREATEREQ 49
#define NOTEQUAL 50
#define PLUS 51
#define SUB 52
#define DIV 53
#define MULT 54
#define MOD 55
#define ANDBIT 56
#define ANDLOGIC 57
#define ORBIT 58
#define ORLOGIC 59
#define COMMA 60
#define REALNUM 61
#define INTNUM 62
#define LOGICAL 63
#define REALVECTOR 64
#define INTVECTOR 65

void analexConstructor(FILE* fl);
void analexDestructor ();
int nextToken();
char* getLexeme();
int getLexemeLength();
int getLine();
void printToken(int token);

#endif // ANALEX_H_INCLUDED
